Systems and Methods for Generating Haptic Effects Associated With Transitions in Audio Signals

ABSTRACT

Systems and methods for generating haptic effects associated with transitions in audio signals are disclosed. One disclosed system for outputting haptic effects includes a processor configured to: receive a signal; determine a haptic effect based in part on the signal; output a haptic signal associated with the haptic effect; an audio output device configured to receive the signal and output an audible effect; and a haptic output device in communication with the processor and coupled to the touch surface, the haptic output device configured to receive the haptic signal and output the haptic effect.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims the benefit of U.S.application Ser. No. 15/617,172, filed on Jun. 8, 2017, and entitled“Systems and Methods for Generating Haptic Effects Associated WithTransitions in Audio Signals,” which is a continuation of and claims thebenefit of U.S. application Ser. No. 14/078,438, filed on Nov. 12, 2013,and entitled “Systems and Methods for Generating Haptic EffectsAssociated With Transitions in Audio Signals,” which claims the benefitof U.S. Provisional Application No. 61/874,933 filed on Sep. 6, 2013 andentitled “Audio to Haptics” the entirety of all of which is herebyincorporated herein by reference.

This application is related to U.S. patent application Ser. No.14/078,442, filed the same day as U.S. application Ser. No. 14/078,438and entitled “Systems and Methods for Generating Haptic EffectsAssociated with an Envelope in Audio Signals,” (Attorney Docket No.IMM478 (51851-879624)), the entirety of which is hereby incorporatedherein by reference.

This application is related to U.S. patent application Ser. No.14/078,445, filed the same day as U.S. application Ser. No. 14/078,438and entitled “Systems and Methods for Generating Haptic EffectsAssociated with Audio Signals,” (Attorney Docket No. IMM479(51851-879622)), the entirety of which is hereby incorporated herein byreference.

FIELD OF THE INVENTION

The present invention generally relates to haptic feedback and moreparticularly to systems and methods for generating haptic effectsassociated with transitions in signals.

BACKGROUND

Touch-enabled devices have become increasingly popular. For instance,mobile and other devices may be configured with touch-sensitive displaysso that a user can provide input by touching portions of thetouch-sensitive display. As another example, a touch-enabled surfaceseparate from a display may be used for input, such as a trackpad,mouse, or other device. Furthermore, some touch-enabled devices make useof haptic effects, for example, haptic effects configured to simulate atexture or a friction on a touch-surface. In some devices these hapticeffects may correlate to audio or other effects output by the device.However, due to latency in processing and outputting the audio andhaptic effects, these effects may be less compelling. Thus, there is aneed for improved haptic effects associated with audio effects.

SUMMARY

Embodiments of the present disclosure include devices featuring hapticeffects felt on a touch area and associated with audio signals. Thesehaptic effects may include, but are not limited to, changes in texture,changes in coefficient of friction, and/or simulation of boundaries,obstacles, or other discontinuities in the touch surface that can beperceived through use of an object in contact with the surface.

In one embodiment, a system of the present disclosure may comprise aprocessor configured to: receive a signal; determine a haptic effectbased in part on the signal; and output a haptic signal associated withthe haptic effect; an audio output device configured to receive thesignal and output an audible effect; and a haptic output device incommunication with the processor and coupled to the touch surface, thehaptic output device configured to receive the haptic signal and outputthe haptic effect.

This illustrative embodiment is mentioned not to limit or define thelimits of the present subject matter, but to provide an example to aidunderstanding thereof. Illustrative embodiments are discussed in theDetailed Description, and further description is provided there.Advantages offered by various embodiments may be further understood byexamining this specification and/or by practicing one or moreembodiments of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

A full and enabling disclosure is set forth more particularly in theremainder of the specification. The specification makes reference to thefollowing appended figures.

FIG. 1A shows an illustrative system for generating haptic effectsassociated with transitions in audio signals;

FIG. 1B shows an external view of one embodiment of the system shown inFIG. 1A;

FIG. 1C illustrates an external view of another embodiment of the systemshown in FIG. 1A;

FIG. 2A illustrates an example embodiment for generating haptic effectsassociated with transitions in audio signals;

FIG. 2B illustrates an example embodiment for generating haptic effectsassociated with transitions in audio signals;

FIG. 3 illustrates an example embodiment for generating haptic effectsassociated with transitions in audio signals according to oneembodiment;

FIG. 4 illustrates a flow chart for a method for generating hapticeffects associated with transitions in audio signals according to oneembodiment;

FIG. 5 illustrates a flow chart for a method for generating hapticeffects associated with transitions in audio signals according to oneembodiment;

FIG. 6 illustrates a flow chart for a method for identifying transitionsin audio signals according to one embodiment;

FIG. 7 illustrates an example Spectrogram and Pulse Code Modulation ofan audio signal according to a method for identifying transitions inaudio signals according to one embodiment;

FIG. 8 illustrates the Derivative Signal of an audio signal according toone method for identifying transitions in audio signals according to oneembodiment;

FIG. 9 illustrates a flow chart for a method for identifying transitionsin audio signals according to one embodiment; and

FIG. 10 illustrates an example transition detection signal according toone embodiment of a method for identifying transitions in audio signals.

DETAILED DESCRIPTION

Reference will now be made in detail to various and alternativeillustrative embodiments and to the accompanying drawings. Each exampleis provided by way of explanation, and not as a limitation. It will beapparent to those skilled in the art that modifications and variationscan be made. For instance, features illustrated or described as part ofone embodiment may be used on another embodiment to yield a stillfurther embodiment. Thus, it is intended that this disclosure includemodifications and variations as come within the scope of the appendedclaims and their equivalents.

Illustrative Example of a Device for Generating Haptic EffectsAssociated with Transitions in Audio Signals

One illustrative embodiment of the present disclosure comprises acomputing system, such as a smartphone, tablet, or portable musicdevice. In some embodiments, the computing system may comprise awearable device, or be embedded in furniture or clothes. The computingsystem can include and/or may be in communication with one or moresensors, such as an accelerometer, as well as sensors (e.g., optical,resistive, or capacitive) for determining a location of a touch relativeto a display area corresponding in this example to the screen of thedevice.

As the user interacts with the device, one or more haptic outputdevices, for example, actuators are used to provide haptic effects. Forexample, a haptic effect may be output to simulate the presence of atexture on the surface of the device. In one such embodiment, as theuser's finger moves across the surface, a vibration, electric field, orother effect may be output to simulate the feeling of a texture on thesurface of the device. Similarly, in another embodiment, as the usermoves a finger across the device, the perceived coefficient of frictionof the screen can be varied (e.g., increased or decreased) based on theposition, velocity, and/or acceleration of the finger or the length oftime the finger has been in contact with the device. In otherembodiments, the mobile device may output haptic effects such asvibrations, pops, clicks, or surface deformations. In some embodiments,haptic effects may be output for a certain period of time (e.g., 50 ms)when a certain event occurs. In other embodiments, the haptic effect mayvary with a fixed period, e.g., in an embodiment, a texture may beoutput that varies at a 100 Hz rate, e.g., a 100 Hz sinusoid.

In the illustrative embodiment, the haptic effect comprises an effectassociated with an audio signal. For example, in some embodiments, thehaptic effect may comprise a haptic effect associated with an audiotrack. In some embodiments, the user may be listening to the audio track(e.g., using headphones, speakers, or some other type of audio outputdevice) at the time the haptic effect is determined. In otherembodiments, the haptic effect may be determined in advance as part of a“haptic track.” This haptic track may be distributed along with theaudio file, so that it may be played alongside the audio track. In someembodiments, the haptic track may be synched to the audio track suchthat haptic effects correspond to events in the audio track. In otherembodiments, the haptic effect may be associated with an Audio-Visual(“AV”) track, for example, the audio portion of a video file.

In one illustrative embodiment, the computing device may determine thehaptic effects by determining locations of transitions in an audiosignal. In some embodiments these transitions may comprise changes inamplitude, frequency, or other changes in the audio signal. For example,in one embodiment, a transition may comprise a change from audio outputby an orchestra to audio output by people speaking. In otherembodiments, the transition may comprise a more subtle change, such as achange in the tone of voice of a speaker. The present disclosureincludes further description of example methods for determining thelocation of a transition in an audio signal.

In some embodiments, the haptic effects may be output in a coordinatedor synchronized form along with the audio file. In some embodiments, asimple filtering technique (e.g., low pass filtering) may be used toautomatically determine haptic effects from an audio or an AV file.However, such a method may result in poor synchronization between thehaptic effects and the audio events. This may result in lower qualityhaptic effects as perceived by the user. Determining the location oftransitions in the audio file enables better synchronization of hapticeffects to audible effects. In some embodiments, better synchronizationmay occur if the haptic effect starts at the same time the audio or AVevent starts.

As will be discussed in further detail below, any number of features maybe found in an audio signal. Embodiments of the present disclosureprovide systems and methods for identifying these features, and thendetermining and outputting haptic effects that are synchronized withthese features. Further, in some embodiments, the systems and methodsdiscussed herein may be used to determine haptic effects associated withother types of signals, e.g., pressure, acceleration, velocity, ortemperature signals.

Illustrative Systems for Generating Haptic Effects Associated withTransitions in Audio Signals

FIG. 1A shows an illustrative system 100 for generating haptic effectsassociated with transitions in audio signals. Particularly, in thisexample, system 100 comprises a computing device 101 having a processor102 interfaced with other hardware via bus 106. A memory 104, which cancomprise any suitable tangible (and non-transitory) computer-readablemedium such as RAM, ROM, EEPROM, or the like, embodies programcomponents that configure operation of the computing device. In thisexample, computing device 101 further includes one or more networkinterface devices 110, input/output (I/O) interface components 112, andadditional storage 114.

Network device 110 can represent one or more of any components thatfacilitate a network connection. Examples include, but are not limitedto, wired interfaces such as Ethernet, USB, IEEE 1394, and/or wirelessinterfaces such as IEEE 802.11, Bluetooth, or radio interfaces foraccessing cellular telephone networks (e.g., a transceiver/antenna foraccessing a CDMA, GSM, UMTS, or other mobile communications network(s)).

I/O components 112 may be used to facilitate connection to devices suchas one or more displays, keyboards, mice, speakers, microphones,cameras, and/or other hardware used to input data or output data. Forexample, in some embodiments, I/O components 112 may include speakersconfigured to play audio signals provided by processor 102. Storage 114represents nonvolatile storage such as magnetic, optical, or otherstorage media included in device 101. In some embodiments, storage 114may be configured to store audio files configured to be played to theuser via I/O components 112.

System 100 further includes a touch surface 116, which, in this example,is integrated into device 101. Touch surface 116 represents any surfacethat is configured to sense touch input of a user. One or more sensors108, 130 are configured to detect a touch in a touch area when an objectcontacts a touch surface and provide appropriate data for use byprocessor 102. Any suitable number, type, or arrangement of sensors canbe used. For example, resistive and/or capacitive sensors may beembedded in touch surface 116 and used to determine the location of atouch and other information, such as pressure. As another example,optical sensors with a view of the touch surface may be used todetermine the touch position. In some embodiments, sensor 108 and touchsurface 116 may comprise a touch screen or a touch-pad. For example, insome embodiments, touch surface 116 and sensor 108 may comprise a touchscreen mounted overtop of a display configured to receive a displaysignal and output an image to the user. In other embodiments, the sensor108 may comprise an LED detector. For example, in one embodiment, touchsurface 116 may comprise an LED finger detector mounted on the side of adisplay. In some embodiments, the processor is in communication with asingle sensor 108, in other embodiments, the processor is incommunication with a plurality of sensors 108, 130, for example, a firsttouch screen and a second touch screen. The sensor 108 is configured todetect user interaction, and based on the user interaction, transmitsignals to processor 102. In some embodiments, sensor 108 may beconfigured to detect multiple aspects of the user interaction. Forexample, sensor 108 may detect the speed and pressure of a userinteraction, and incorporate this information into the interface signal.

Device 101 further comprises a haptic output device 118. In the exampleshown in FIG. 1A haptic output device 118 is in communication withprocessor 102 and is coupled to touch surface 116. In some embodiments,haptic output device 118 is configured to output a haptic effectsimulating a texture on the touch surface in response to a hapticsignal. Additionally or alternatively, haptic output device 118 mayprovide vibrotactile haptic effects that move the touch surface in acontrolled manner. Some haptic effects may utilize an actuator coupledto a housing of the device, and some haptic effects may use multipleactuators in sequence and/or in concert. For example, in someembodiments, a surface texture may be simulated by vibrating the surfaceat different frequencies. In such an embodiment, haptic output device118 may comprise one or more of, for example, a piezoelectric actuator,an electric motor, an electro-magnetic actuator, a voice coil, a shapememory alloy, an electro-active polymer, a solenoid, an eccentricrotating mass motor (ERM), or a linear resonant actuator (LRA). In someembodiments, haptic output device 118 may comprise a plurality ofactuators, for example an ERM and an LRA. In some embodiments, thehaptic device 118 may comprise or be embedded in a wearable device,furniture, or clothing.

Although a single haptic output device 118 is shown here, embodimentsmay use multiple haptic output devices of the same or different type tooutput haptic effects, for example, to simulate surface textures or varythe perceived coefficient of friction on the touch surface. For example,in one embodiment, a piezoelectric actuator may be used to displace someor all of touch surface 116 vertically and/or horizontally at ultrasonicfrequencies, such as by using an actuator moving at frequencies greaterthan 20-25 kHz in some embodiments. In some embodiments, multipleactuators such as eccentric rotating mass motors and linear resonantactuators can be used alone or in concert to provide different textures,variations in the coefficient of friction, or other haptic effects.

In still other embodiments, haptic output device 118 may applyelectrostatic friction or attraction, for example, by use of anelectrostatic surface actuator, to simulate a texture on the surface oftouch surface 116. Similarly, in some embodiments, haptic output device118 may use electrostatic attraction to vary the friction the user feelson the surface of touch surface 116. For example, in one embodiment,haptic output device 118 may comprise an electrostatic display or anyother device that applies voltages and currents instead of mechanicalmotion to generate a haptic effect. In such an embodiment, anelectrostatic actuator may comprise a conducting layer and an insulatinglayer. In such an embodiment, the conducting layer may be anysemiconductor or other conductive material, such as copper, aluminum,gold, or silver. And the insulating layer may be glass, plastic,polymer, or any other insulating material. Furthermore, the processor102 may operate the electrostatic actuator by applying an electricsignal to the conducting layer. The electric signal may be an AC signalthat, in some embodiments, capacitively couples the conducting layerwith an object near or touching touch surface 116. In some embodiments,the AC signal may be generated by a high-voltage amplifier. In otherembodiments the capacitive coupling may simulate a friction coefficientor texture on the surface of the touch surface 116. For example, in oneembodiment, the surface of touch surface 116 may be smooth, but thecapacitive coupling may produce an attractive force between an objectnear the surface of touch surface 116. In some embodiments, varying thelevels of attraction between the object and the conducting layer canvary the simulated texture on an object moving across the surface oftouch surface 116 or vary the coefficient of friction felt as the objectmoves across the surface of touch surface 116. Furthermore, in someembodiments, an electrostatic actuator may be used in conjunction withtraditional actuators to vary the simulated texture on the surface oftouch surface 116. For example, the actuators may vibrate to simulate achange in the texture of the surface of touch surface 116, while at thesame time; an electrostatic actuator may simulate a different texture,or other effects, on the surface of touch surface 116.

One of ordinary skill in the art will recognize that, in addition tovarying the coefficient of friction, other techniques or methods can beused to, for example, simulate a texture on a surface. In someembodiments, a texture may be simulated or output using a flexiblesurface layer configured to vary its texture based upon contact from asurface reconfigurable haptic substrate (including, but not limited to,e.g., fibers, nanotubes, electroactive polymers, piezoelectric elements,or shape memory allows) or a magnetorheological fluid. In anotherembodiment, surface texture may be varied by raising or lowering one ormore surface features, for example, with a deforming mechanism, air orfluid pockets, local deformation of materials, resonant mechanicalelements, piezoelectric materials, micro-electromechanical systems(“MEMS”) elements, thermal fluid pockets, MEMS pumps, variable porositymembranes, or laminar flow modulation.

In some embodiments an electrostatic actuator may be used to generate ahaptic effect by stimulating parts of the body near or in contact withthe touch surface 116. For example, in some embodiments an electrostaticactuator may stimulate the nerve endings in the skin of a user's fingeror components in a stylus that can respond to the electrostaticactuator. The nerve endings in the skin, for example, may be stimulatedand sense the electrostatic actuator (e.g., the capacitive coupling) asa vibration or some more specific sensation. For example, in oneembodiment, a conducting layer of an electrostatic actuator may receivean AC voltage signal that couples with conductive parts of a user'sfinger. As the user touches the touch surface 116 and moves his or herfinger on the touch surface, the user may sense a texture ofprickliness, graininess, bumpiness, roughness, stickiness, or some othertexture.

Further, in some embodiments, multiple actuators may be used to outputhaptic effects. This may serve to increase the range of effects thathaptic output devices 118 can output. For example, in some embodiments,vibrating actuators may be used in coordination with electrostaticactuators to generate a broad range of effects. In still furtherembodiments, additional types of haptic output devices, such as devicesconfigured to deform a touch surface, may be used in coordination withother haptic output devices, such as vibrating actuators.

Turning to memory 104, exemplary program components 124, 126, and 128are depicted to illustrate how a device may be configured to generatehaptic effects associated with transitions in audio signals. In thisexample, a detection module 124 configures processor 102 to monitortouch surface 116 via sensor 108 to determine a position of a touch. Forexample, module 124 may sample sensor 108 in order to track the presenceor absence of a touch and, if a touch is present, to track one or moreof the location, path, velocity, acceleration, pressure, and/or othercharacteristics of the touch over time.

Haptic effect determination module 126 represents a program componentthat analyzes audio data, such as data from an audio effect, to select ahaptic effect to generate. Particularly, module 126 comprises code thatdetermines, based on the audio data, a type of haptic effect to output.

Haptic effect generation module 128 represents programming that causesprocessor 102 to generate and transmit a haptic signal to haptic outputdevice 118, which causes haptic output device 118 to generate theselected haptic effect. For example, generation module 128 may accessstored waveforms or commands to send to haptic output device 118. Asanother example, haptic effect generation module 128 may receive adesired type of effect and utilize signal processing algorithms togenerate an appropriate signal to send to haptic output device 118. Someembodiments may utilize multiple haptic output devices in concert tooutput the haptic effect. In some embodiments, processor 102 may streamor transmit the haptic signal to the haptic output device 118.

A touch surface may or may not overlay (or otherwise correspond to) adisplay, depending on the particular configuration of a computingsystem. In FIG. 1B, an external view of a computing system 100B isshown. Computing device 101 includes a touch enabled display 116 thatcombines a touch surface and a display of the device. The touch surfacemay correspond to the display exterior or one or more layers of materialabove the actual display components.

FIG. 1C illustrates another example of a touch-enabled computing system100C in which the touch surface does not overlay a display. In thisexample, a computing device 101 comprises a touch surface 116 which maybe mapped to a graphical user interface provided in a display 122 thatis included in computing system 120 interfaced to device 101. Forexample, computing device 101 may comprise a mouse, trackpad, or otherdevice, while computing system 120 may comprise a desktop or laptopcomputer, set-top box (e.g., DVD player, DVR, cable television box), oranother computing system. As another example, touch surface 116 anddisplay 122 may be disposed in the same device, such as a touch enabledtrackpad in a laptop computer comprising display 122. Whether integratedwith a display or otherwise, the depiction of planar touch surfaces inthe examples herein is not meant to be limiting. Other embodimentsinclude curved or irregular touch enabled surfaces that are furtherconfigured to provide surface-based haptic effects.

FIGS. 2A-2B illustrate an example of devices that may generate hapticeffects associated with transitions in audio signals. FIG. 2A is adiagram illustrating an external view of a system 200 comprising acomputing device 201 that comprises a touch enabled display 202. FIG. 2Bshows a cross-sectional view of device 201. Device 201 may be configuredsimilarly to device 101 of FIG. 1A, though components such as theprocessor, memory, sensors, and the like are not shown in this view forpurposes of clarity.

As can be seen in FIG. 2B, device 201 features a plurality of hapticoutput devices 218 and an additional haptic output device 222. Hapticoutput device 218-1 may comprise an actuator configured to impartvertical force to display 202, while 218-2 may move display 202laterally. In this example, the haptic output devices 218 and 222 arecoupled directly to the display, but it should be understood that thehaptic output devices 218 and 222 could be coupled to another touchsurface, such as a layer of material on top of display 202. Furthermore,it should be understood that one or more of haptic output devices 218 or222 may comprise an electrostatic actuator, as discussed above.Furthermore, haptic output device 222 may be coupled to a housingcontaining the components of device 201. In the examples of FIGS. 2A-2B,the area of display 202 corresponds to the touch area, though theprinciples could be applied to a touch surface completely separate fromthe display.

In one embodiment, haptic output devices 218 each comprise apiezoelectric actuator, while additional haptic output device 222comprises an eccentric rotating mass motor, a linear resonant actuator,or another piezoelectric actuator. Haptic output device 222 can beconfigured to provide a vibrotactile haptic effect in response to ahaptic signal from the processor. The vibrotactile haptic effect can beutilized in conjunction with surface-based haptic effects and/or forother purposes. For example, each actuator may be used in conjunction tooutput a vibration, simulate a texture, or vary the coefficient offriction on the surface of display 202.

In some embodiments, either or both haptic output devices 218-1 and218-2 can comprise an actuator other than a piezoelectric actuator. Anyof the actuators can comprise a piezoelectric actuator, anelectromagnetic actuator, an electroactive polymer, a shape memoryalloy, a flexible composite piezo actuator (e.g., an actuator comprisinga flexible material), electrostatic, and/or magnetostrictive actuators,for example. Additionally, haptic output device 222 is shown, althoughmultiple other haptic output devices can be coupled to the housing ofdevice 201 and/or haptic output devices 222 may be coupled elsewhere.Device 201 may comprise multiple haptic output devices 218-1/218-2coupled to the touch surface at different locations, as well.

Turning now to FIG. 3, FIG. 3 shows one embodiment of a system forgenerating haptic effects associated with transitions in audio signalsaccording to the present disclosure. The system 300 shown in FIG. 3comprises a computing device 301, with a display 302 showing a videocomprising a train 304. In some embodiments computing device 301 maycomprise a handheld computing device, e.g., a mobile phone, a tablet, amusic player, or a laptop computer. In another embodiment, computingdevice 301 may comprise a multifunction controller. For example, acontroller for use in a kiosk, ATM, or other computing device. Further,in one embodiment, computing device 301 may comprise a controller foruse in a vehicle.

The video 304 may further comprise audible effects played by audiooutput devices (e.g., speakers or headphones) coupled to the computingdevice 301 (not shown in FIG. 3). Embodiments of the present disclosurecomprise methods for determining haptic effects based on the audiosignal. For example, some embodiments may separate the audio signal fromthe video signal, and then perform various operations, discussed infurther detail below, to determine haptic effects to output alongsidethe audio track.

In some embodiments, display 302 may comprise a touch enabled display.Further, rather than displaying a video, display 302 may provide theuser with a graphical user interface, e.g., a graphical user interfacefor a kiosk, ATM, stereo system, car dashboard, telephone, computer,music player, or some other graphical user interface known in the art.In such an embodiment, computing device 301 may determine haptic effectsbased on audio signals associated with the graphical user interface. Forexample, in some embodiments the graphical user interface may compriseaudio effects output when the user interacts with icons, buttons, orother interface elements. In some embodiments, computing device 301 mayfurther determine haptic effects associated with one or more of theseaudio effects. In some embodiments, the computing device 301 may derivehaptic effects from transitions in the audio signal or any other sensorderived signal, e.g., signals from sensors such as user interfaces,accelerometers, gyroscopes, Inertial Measurement Units, etc.

In some embodiments, a video signal may not be included. For example, insome embodiments, haptic effects may be played alongside an audio trackthat is not associated with a video. In such an embodiment, the systemsand methods disclosed herein may operate on the audio signal, in realtime, as the signal is being played or at a time in advance of thesignal being played. For example, in some embodiments, an audio signalmay be processed to determine a haptic track, which is stored on a datastore for playing in the future. In such an embodiment, the haptic trackmay be determined by the computing device that plays the haptic track.In other embodiments, the haptic track may be created by the author ordistributor of the audio track. In such an embodiment, the author ordistributor may distribute the haptic track along with the audio track.

Illustrative Methods for Generating Haptic Effects Associated withTransitions in Audio Signals

FIGS. 4 and 5 are flowcharts showing illustrative methods 400 and 500for generating haptic effects associated with transitions in audiosignals. In some embodiments, the steps in flow charts 400 and 500 maybe implemented in program code executed by a processor, for example, theprocessor in a general purpose computer, mobile device, or server. Insome embodiments, these steps may be implemented by a group ofprocessors. In some embodiments the steps shown in FIGS. 4 and 5 may beperformed in a different order. Alternatively, in some embodiments, oneor more of the steps shown in FIGS. 4 and 5 may be skipped or additionalsteps not shown in FIGS. 4 and 5 may be performed. The steps in FIGS. 4and 5 are described with regard to an audio signal. However, in someembodiments, the methods may be used to determine haptic effectsassociated with other types of signals, e.g., pressure, acceleration,velocity, or temperature signals. The steps below are described withreference to components described above with regard to system 100 shownin FIG. 1A.

The method 400 begins when processor 102 receives an audio signal 402.In some embodiments the audio signal may comprise a signal associatedwith a video playing on computing device 101. In other embodiments, theaudio signal may comprise a signal associated with an audio file that iscurrently playing on computing device 101. In still other embodiments,the audio signal may be associated with an audio file that is storedlocally on a computing device 101 or stored on a remote server. Forexample, in some embodiments, the audio signal may comprise an audiofile that is stored on a server and downloaded to the user on demand.

The method 400 continues when processor 102 determines a haptic effectbased on the audio signal 404. In some embodiments, the haptic effectmay comprise a vibration output by one or more haptic output device(s)118. In some embodiments, this vibration may be used to enhance theuser's perception of an audio track playing on the computing device 101.Similarly, in some embodiments, the first haptic effect may comprise avariation in the coefficient of friction on touch surface 116. In otherembodiments, the haptic effect may comprise a simulated texture on thesurface of touch surface 116 (e.g., the texture of one or more of:water, grass, ice, metal, sand, gravel, brick, fur, leather, skin,fabric, rubber, leaves, or any other available texture).

In some embodiments, processor 102 may rely on programming contained inhaptic effect determination module 126 to determine the haptic effect.For example, the processor 102 may access drive signals stored in memory104 and associated with particular haptic effects. As another example, asignal may be generated by accessing a stored algorithm and inputtingparameters associated with an effect. For example, an algorithm mayoutput data for use in generating a drive signal based on amplitude andfrequency parameters. As another example, a haptic signal may comprisedata sent to an actuator to be decoded by the actuator. For instance,the actuator may itself respond to commands specifying parameters suchas amplitude and frequency.

Further, in some embodiments, users may be able to select a vibration,texture, variance in the coefficient of friction, or other haptic effectassociated with an audio file in order to customize computing device101. For example, in some embodiments, a user may select a haptic effectsuch as a surface texture to allow for personalization of the feel of atouch interface. In some embodiments, this haptic effect may beassociated with a ringtone, e.g., for an incoming call, email, textmessage, alarm, or other event. In some embodiments, the user may selectthese personalized haptic effects or surface textures through modifyingsettings or downloading software associated with particular effects. Inother embodiments, the user may designate effects through detectedinteraction with the device. In some embodiments, this personalizationof haptic effects may increase the user's sense of ownership and theconnection between the user and his or her device.

In still other embodiments, device manufacturers, artists,videographers, or software developers may select distinctive hapticeffects, such as surface textures, to brand their devices, userinterfaces, or artistic works (e.g., songs, videos, or audio tracks). Insome embodiments, these haptic effects may be unique to branded devicesand similar to other distinctive elements that may increase brandawareness. For example, many mobile devices and tablets may comprise acustom or branded home screen environment. For example, in someembodiments, devices produced by different manufacturers may comprisethe same operating system; however, manufacturers may distinguish theirdevices by modifying this home screen environment. Similarly, videos oraudio tracks produced by a certain company may comprise a specific typeof haptic effect. Thus, in some embodiments, some device manufacturers,production companies, or software developers may use haptic effects suchas textures or friction based effects to create a unique anddifferentiated user experience.

The method 400 continues when processor 102 outputs a haptic signalassociated with the haptic effect 406. The processor 102 outputs thehaptic signal to a haptic output device 118 configured to output thehaptic effect. In some embodiments, haptic output device 118 may outputthe haptic effect onto touch surface 116. In some embodiments hapticoutput device 118 may comprise traditional actuators such aspiezoelectric actuators or electric motors coupled to touch surface 116or other components within computing device 101. In other embodimentshaptic output device 118 may comprise electrostatic actuators configuredto simulate textures or vary coefficients of friction usingelectrostatic fields. In some embodiments, processor 102 may control aplurality of haptic output devices to simulate multiple haptic effects.For example, in one embodiment, processor 102 may control anelectrostatic actuator to simulate a texture on the surface of touchsurface 116 and processor 102 may further control other haptic outputdevices 118 to simulate other features. For example, haptic outputdevices 118 may comprise actuators configured to output other effects,such as vibrations configured to simulate barriers, detents, movement,or impacts on touch surface 116. In some embodiments, processor 102 maycoordinate the effects so the user can feel a plurality of effectstogether when interacting with touch surface 116.

Then processor 102 outputs the audio signal 408. In some embodiments,processor 102 may output the audio signal to an audio output device suchas a speaker, headphone, or ear bud. In some embodiments, the audiooutput device may be integrated into computing device 101. In otherembodiments, the audio output device may be coupled to computing device101. Further, in some embodiment, the audio signal may be synchronizedto the haptic effects, e.g., in some embodiments, the haptic effect maybe output substantially simultaneously as a corresponding audio effect.

Turning now to FIG. 5, FIG. 5 is a flowchart showing an illustrativemethod 500 for determining haptic effects associated with transitions inaudio signals. The method 500 begins at step 502 when processor 102identifies transitions in an audio signal. Various example methods foridentifying transitions in an audio signal are discussed in furtherdetail below. In some embodiments, these transitions may be associatedwith changes in the audio signal, such as changes in the amplitude orfrequency of the audio signal. These changes may be associated with, forexample, a change in musical instrument, a scene change in a movie, achange in source (e.g., a change in speaker), or some other transitioncommonly found in audio files.

The method 500 continues at step 504 when processor 102 synchs hapticeffects to the transitions. In some embodiments, synching haptic effectsto the transitions comprises configuring the processor 102 to output ahaptic signal associated with the haptic effect at a time thatsubstantially corresponds to the audio effect. In some embodiments, theprocessor 102 may output the haptic effects at the time of thetransition. In other embodiments, the haptic effects may be output atsome period after the transition. For example, in some embodiments, theprocessor 102 may output a haptic effect that acts as an echo. Forexample, in one embodiment, the audio track may comprise a soundsimulating a gunshot. In such an embodiment, the processor may determinea haptic effect that coincides with the audio effect. The processor mayfurther determine a second haptic effect to be output a few second laterto simulate an echo associated with the gunshot.

In some embodiments, the transition maps to locations where the signalramps up or ramps down. These transitions may then be used to identifyevents within the audio signal, which may be tagged with haptic markersfor generating haptic effects. In the example given above, thetransition may correspond to an event such as a gunshot. In someembodiments, rather than determining a haptic effect, processor 102 mayapply a haptic marker to that location in the audio file. This hapticmarker may be used by processor 102, or another processor, to determinea haptic effect when playing the audio file.

Illustrative Methods for Identifying Transitions in Audio Signals

FIG. 6 is a flowchart showing an illustrative method 600 for identifyingtransitions in an audio signal, which may be used for determining hapticeffects associated with the audio signal. In some embodiments, the stepsshown in FIG. 6 may be implemented in program code executed by aprocessor, for example, the processor in a general purpose computer,mobile device, or server. In some embodiments, these steps may beimplemented by a group of processors. In some embodiments the stepsshown in FIG. 6 may be performed in a different order. Alternatively, insome embodiments, one or more of the steps in FIG. 6 may be skipped, oradditional steps not shown in FIG. 6 may be performed. The steps in FIG.6 are described with regard to an audio signal. However, in someembodiments, the method may be used to determine haptic effectsassociated with other types of signals, e.g., pressure, acceleration,velocity, or temperature signals

As shown in FIG. 6, the method 600 begins when processor 102 performs aFast Fourier Transform (FFT) of the audio signal. In some embodiments,the FFT is used to determine a spectrogram of the audio signal. Thespectrogram comprises a plot of the FFT of the Audio Signal in smalltime windows. In some embodiments, the spectrogram is represented in athree dimensional plot with time in one axis, frequency in another, andamplitude of the specific frequencies in the third axis. In someembodiments, a spectrogram may be used to determine transitions withinthe audio signal. An example two dimensional spectrogram of an audiosignal is shown in FIG. 7, as plot 700. The spectrogram comprises a twodimensional plot 700, with the third dimension depicted by the darknessin the plot. The darker sections of the plot that have a highermagnitude (identified by arrows 702), and the sections that are lighterhave a lower magnitude (identified by arrow 704).

At step 604, the processor 102 determines a mean value per time windowfor the transformed signal determined in step 602. In some embodiments,this mean value signal may be stored in a vector. In some embodiments,this vector may be called a MeanSpec.

At step 606, the processor 102 normalizes the mean values of thetransformed signal determined in step 604. In some embodiments, thevalues are normalized to between 0 and 1. In other embodiments, thevalues are normalized values between −1 and 1.

In some embodiments, not shown in FIG. 6, the normalized signal may befiltered. In some embodiments, the signal may be filtered with a lowpass filter at relatively low value in the audible range, e.g., 100 Hzor 200 Hz. In some embodiments, this filtering may remove noise in thesignal.

Next processor 102 takes the derivative of the data in the normalizedsignal 608. In some embodiments, this data may be stored in a new signalDerMeanSpec. A plot of an example DerMeanSpec is shown in FIG. 8 as line804 in plot 800. The example audio signal from which this DerMeanSpecwas determined is shown as line 802 in plot 800.

Then processor 102 determines the local maximum values within thederivative signal (DerMeanSpec) 610. In some embodiments, each of theselocal maximum values correspond to transitions in magnitude. A plot ofthe local maximum found in an example DerMeanSpec is shown in FIG. 8 asline 806 in plot 800. In some embodiments, these local maximum representthe locations of transitions in the audio signal.

Turning now to FIG. 7, as mentioned above, FIG. 7 illustrates an exampleSpectrogram and Pulse Code Modulation of an audio signal according toone method for identifying transitions in audio signals according to oneembodiment. The spectrogram comprises a two dimensional plot 700, withthe third dimension depicted by the darkness in the plot. The darkersections of the plot that have a higher magnitude (identified by arrows702), and the sections that are lighter have a lower magnitude(identified by arrow 704). As shown in FIG. 7, plot 750 comprises a viewof the Pulse Code Modulation (PCM) 752 of the audio signal shown in plot700.

Turning now to FIG. 8, as mentioned above, FIG. 8 illustrates a plot 800of the Derivative Signal of an audio signal according to one method foridentifying transitions in audio signals according to one embodiment. Asshown in FIG. 8, the audio signal is represented by black line 802, thederivative signal (mentioned above as the DerMeanSpec) is represented bygray line 804, and the local maximum found in DerMeanSpec is representedby light gray line 806, which includes starburst at each of its peakvalues. In FIG. 8, not all the local maximum values are shown. Rather,as shown in FIG. 8, only the local maximum values with a value thatexceeded a predetermined delta value with respect to the previous localminima are shown. In some embodiments, these local maximum represent thelocations of transitions in the audio signal. Thus, in some embodiments,the size of the delta value may be adjusted in order to vary themagnitude of the transitions detected in the audio signal.

Turning now to FIG. 9, FIG. 9 is a flowchart showing an illustrativemethod 900 for identifying transitions in audio signals. This method maybe used for determining haptic effects associated with transitions inaudio signals. In some embodiments, the steps shown in FIG. 9 may beimplemented in program code executed by a processor, for example, theprocessor in a general purpose computer, mobile device, or server. Insome embodiments, these steps may be implemented by a group ofprocessors. In some embodiments the steps shown in FIG. 9 may beperformed in a different order. Alternatively, in some embodiments, oneor more of the steps shown in FIG. 9 may be skipped, or additional stepsnot shown in FIG. 9 may be performed. The steps in FIG. 9 are describedwith regard to an audio signal. However, in some embodiments, the methodmay be used to determine haptic effects associated with other types ofsignals, e.g., pressure, acceleration, velocity, or temperature signals.

As shown in FIG. 9, the method 900 begins at step 902 when processor 102determines the Power Spectral Density (PSD) of a group of frequencybands for consecutive time windows tw(k) in the audio signal. Further,in some embodiments, each band may be represented at a time window tw(k)by the sum of its frequencies PSD values, PSD(band(j),tw(k)).

Next the processor 102 determines a Total Power Spectral Density 904 foreach time window. In some embodiments, the processor 904 may determinethe Total Power Spectral Density for the distinct frequency bands thatform each of the consecutive frequencies as the sum of all the bands'PSDs at time window tw(k). In some embodiments, the set of all thesebands may cover the whole range of frequencies in the PSD.

Next, the processor 102 determines a frequency band's contribution tothe Total Power Spectral Density 906. In some embodiments, this maycomprise determining the contribution of each band's PSD in the totalPSD of the audio signal in the time window tw(k). In some embodiments,this may comprise dividing the value of the PSD of a band at a timewindow, by the sum of all band's PSD values at that time window:weight(band(j),tw(k))=PSD(band(j),tw(k))/sum of all bands PSDs at tw(k).

Then the processor 102 determines a First Rate of Change of the PowerSpectral Density 908. In some embodiments, determining a rate of changemay comprise determining a rate of change ‘R1’ in each band's PSDbetween any two consecutive time windows tw(k) and tw(k+1):R1(band(j),tw(k))=abs(PSD(band(j),tw(k+1))−PSD(band(j),tw(k)))/PSD(band(j),tw(k)).

Next, the processor 102 determines a first distance 910. In someembodiments, the first distance may be equal to the sum of all frequencybands' rates of change between two consecutive time windows tw(k) andtw(k+1) weighted by the contribution of each band in the signal:dist1(tw(k))=sum of (R1(band(j),tw(k))*weight(band(j),tw(k))) for allbands band(j).

Then the processor 102 determines a second rate of change of the PowerSpectral Density 912. In some embodiments, this second rate of change,‘R2’ may comprise a rate of change in each band's PSD between timewindows tw(k) and tw(k+2): R2(band(j),tw(k))=abs(PSD(band(j),tw(k+2))−PSD(band(j),tw(k)))/PSD(band(j),tw(k)).

Next, the processor 102 determines a second distance 914. In someembodiments, this second distance may be equal to the sum of each band'srate of change between time windows tw(k) and tw(k+2) weighted by thecontribution of each band in the signal: dist2(tw(k))=sum for all bandsband(j) of R2(band(j),tw(k))*weight(band(j),tw(k)).

Then at step 916, the processor 102 determines a total distance. In someembodiments, the total distance may comprise the distance betweenconsecutive time windows tw(k) and tw(k+1). In some embodiments, theprocessor 102 may make this determination by multiplying the firstdistance, by the second distance: dist(tw(k))=dist1(tw(k))*dist2(tw(k)).

Then processor 102 determines a local maximum of the total distance 918.In some embodiments, this local maximum indicates a shift in thefrequency profile of the time windows. In some embodiments, this resultsin a representation of a transition within the audio signal.

An example audio signal 1002 is shown in FIG. 10. As shown in FIG. 10,the local maximums that represent transitions in the audio signal 1002are marked with dots 1004. Further, in some embodiments, the system maybe tuned to recognize only local maximum values that are above a certainthreshold and separated by a minimum duration. In some embodiments, thisenables the system to be tuned to detect only transitions that are abovea certain level.

In some embodiments, widening the PSD window size we will enabledetection of larger scene changes. Further, in some embodiments,narrowing the window enables detection of smaller transitions (e.g.,cycles of a repetitive note or beats) but at the cost of a highercomputation time. Further, in some embodiments, multiple differentdistances between time windows may be used, e.g., Euclidean distance orMahalanobis distance.

In some embodiments, method 900 may be modified to have an iterativeapproach. In some embodiments, this may provide a more accuratedetermination without a corresponding increase in computation cost. Insuch an embodiment, the method 900 may be performed iteratively toestimate a precision of x (in ms), by performing each step with a windowsize of y(1) where y(1)>x. Then continue to perform the operation ntimes until y(n−1)<=x. For each of the transition points detected initeration n−1:

-   -   Take a section of the signal with a width of 2*y(n−1) centered        at the transition point.    -   For each of these sections perform steps 902 to 916 with a        window size y(n)=y(n−1)/2.    -   The maximum value of total distance corresponds to the refined        position of the transition.

Advantages of Systems and Methods for Generating Haptic EffectsAssociated with Audio Signals

There are numerous advantages of generating haptic effects associatedwith transitions in audio signals. A simple filtering technique (e.g.,low pass filtering) may be used to automatically determine hapticeffects from an audio or an AV file. However, such a method may resultin poor synchronization between the resulting haptic effects and theaudio events. This may result in lower quality haptic effects asperceived by the user.

Embodiments of systems and methods for generating haptic effectsassociated with transitions in audio signals provide a bettersynchronization of haptic effects with events in the audio or AV file.In some embodiments, a strong synchronization may occur if the hapticeffect starts at the same time the audio or AV event starts. In someembodiments, this may be the case even if the strength of the audio orAV event is low. In some embodiments, the haptic effect is above acertain strength to ensure the user perceives the two events as beingconcurrent. A simple filtering technique may provide only a low strengtheffect, and the ramp-up of the effect may be too slow to allow the userto fully perceive the effect. Each of these problems may be solved byembodiments described herein.

Further embodiments of systems and methods for generating haptic effectsassociated with transitions in audio signals may be used to find andannotate the transitions within an audio or AV file. These transitionscan later be associated with haptic effects using other methods or byanother user/designer. Further, systems and methods for generatinghaptic effects associated with transitions in audio signals allow formore effective automatic conversion of the audio signal into a haptictrack. This may enable a haptic track to be developed based on an audiotrack in advance of distribution of the audio track. Such an embodimentmay enable the haptic track to be distributed along with the audiotrack, and thus provide an additional revenue stream for the creator ordistributor of the audio track.

Further, embodiments of systems and methods for generating hapticeffects associated with transitions in audio signals enable an audiosignal to be properly segmented. In some embodiments, frequency contentanalysis and filtering may allow an audio signal to be analyzed segmentby segment. This may provide for a more detailed and thus morecompelling haptic track of haptic effects associated with each segment.

General Considerations

The methods, systems, and devices discussed above are examples. Variousconfigurations may omit, substitute, or add various procedures orcomponents as appropriate. For instance, in alternative configurations,the methods may be performed in an order different from that described,and/or various stages may be added, omitted, and/or combined. Also,features described with respect to certain configurations may becombined in various other configurations. Different aspects and elementsof the configurations may be combined in a similar manner. Also,technology evolves and, thus, many of the elements are examples and donot limit the scope of the disclosure or claims.

Specific details are given in the description to provide a thoroughunderstanding of example configurations (including implementations).However, configurations may be practiced without these specific details.For example, well-known circuits, processes, algorithms, structures, andtechniques have been shown without unnecessary detail in order to avoidobscuring the configurations. This description provides exampleconfigurations only, and does not limit the scope, applicability, orconfigurations of the claims. Rather, the preceding description of theconfigurations will provide those skilled in the art with an enablingdescription for implementing described techniques. Various changes maybe made in the function and arrangement of elements without departingfrom the spirit or scope of the disclosure.

Also, configurations may be described as a process that is depicted as aflow diagram or block diagram. Although each may describe the operationsas a sequential process, many of the operations can be performed inparallel or concurrently. In addition, the order of the operations maybe rearranged. A process may have additional steps not included in thefigure. Furthermore, examples of the methods may be implemented byhardware, software, firmware, middleware, microcode, hardwaredescription languages, or any combination thereof. When implemented insoftware, firmware, middleware, or microcode, the program code or codesegments to perform the necessary tasks may be stored in anon-transitory computer-readable medium such as a storage medium.Processors may perform the described tasks.

Having described several example configurations, various modifications,alternative constructions, and equivalents may be used without departingfrom the spirit of the disclosure. For example, the above elements maybe components of a larger system, wherein other rules may takeprecedence over or otherwise modify the application of the invention.Also, a number of steps may be undertaken before, during, or after theabove elements are considered. Accordingly, the above description doesnot bound the scope of the claims.

The use of “adapted to” or “configured to” herein is meant as open andinclusive language that does not foreclose devices adapted to orconfigured to perform additional tasks or steps. Additionally, the useof “based on” is meant to be open and inclusive, in that a process,step, calculation, or other action “based on” one or more recitedconditions or values may, in practice, be based on additional conditionsor values beyond those recited. Headings, lists, and numbering includedherein are for ease of explanation only and are not meant to belimiting.

Embodiments in accordance with aspects of the present subject matter canbe implemented in digital electronic circuitry, in computer hardware,firmware, software, or in combinations of the preceding. In oneembodiment, a computer may comprise a processor or processors. Theprocessor comprises or has access to a computer-readable medium, such asa random access memory (RAM) coupled to the processor. The processorexecutes computer-executable program instructions stored in memory, suchas executing one or more computer programs including a sensor samplingroutine, selection routines, and other routines to perform the methodsdescribed above.

Such processors may comprise a microprocessor, a digital signalprocessor (DSP), an application-specific integrated circuit (ASIC),field programmable gate arrays (FPGAs), and state machines. Suchprocessors may further comprise programmable electronic devices such asPLCs, programmable interrupt controllers (PICs), programmable logicdevices (PLDs), programmable read-only memories (PROMs), electronicallyprogrammable read-only memories (EPROMs or EEPROMs), or other similardevices.

Such processors may comprise, or may be in communication with, media,for example tangible computer-readable media, that may storeinstructions that, when executed by the processor, can cause theprocessor to perform the steps described herein as carried out, orassisted, by a processor. Embodiments of computer-readable media maycomprise, but are not limited to, all electronic, optical, magnetic, orother storage devices capable of providing a processor, such as theprocessor in a web server, with computer-readable instructions. Otherexamples of media comprise, but are not limited to, a floppy disk,CD-ROM, magnetic disk, memory chip, ROM, RAM, ASIC, configuredprocessor, all optical media, all magnetic tape or other magnetic media,or any other medium from which a computer processor can read. Also,various other devices may include computer-readable media, such as arouter, private or public network, or other transmission device. Theprocessor, and the processing, described may be in one or morestructures, and may be dispersed through one or more structures. Theprocessor may comprise code for carrying out one or more of the methods(or parts of methods) described herein.

While the present subject matter has been described in detail withrespect to specific embodiments thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, it should be understoodthat the present disclosure has been presented for purposes of examplerather than limitation, and does not preclude inclusion of suchmodifications, variations and/or additions to the present subject matteras would be readily apparent to one of ordinary skill in the art.

What is claimed:
 1. A system for synchronizing haptic effects comprising: a haptic output device; a processor coupled to the haptic output device and configured to: receive a signal; identify one or more transitions in the signal by: determining a mean value of a Fast Fourier Transform of the signal at a series of time intervals; normalizing each of the mean values to create a normalized signal; determining a derivative of the normalized signal to create a derivative signal; and determining one or more local maximum values within the derivative signal; synchronize one or more haptic effects to the one or more transitions; and transmit a haptic signal associated with the synchronized haptic effects to a data store configured to store a haptic track.
 2. The system of claim 1, wherein the signal comprises one or more of: an audio signal, a pressure signal, or an acceleration signal.
 3. The system of claim 1, further comprising: an audio output device configured to receive the signal and output an audible effect; and a haptic output device in communication with the processor, the haptic output device configured to receive the haptic signal and output the haptic effect.
 4. The system of claim 3, wherein the audio output device and the haptic output device are remote from each other.
 5. The system of claim 1, wherein the transitions comprise one or more of: a change in frequency, a change in amplitude, or a repetition of a frequency and amplitude.
 6. The system of claim 1, wherein the haptic effect comprises one or more of: a variation in coefficient of friction, a simulated texture, or a vibration.
 7. The system of claim 1, wherein the processor is further configured to filter the normalized signal.
 8. The system of claim 1, wherein the one or more local maximum values comprises the one or more transitions.
 9. A method for outputting haptic effects comprising: receiving a signal; identifying one or more transitions in the signal by: determining a mean value of a Fast Fourier Transform of the signal at a series of time intervals; normalizing each of the mean values to create a normalized signal; determining a derivative of the normalized signal to create a derivative signal; and determining one or more local maximum values within the derivative signal; synchronizing one or more haptic effects to the one or more transitions; and transmitting a haptic signal associated with the synchronized haptic effects to a data store configured to store a haptic track.
 10. The method of claim 9, wherein the signal comprises one or more of: an audio signal, a pressure signal, or an acceleration signal.
 11. The method of claim 9, further comprising transmitting the haptic signal to a haptic output device configured to output the haptic effect and transmitting the signal to an audio output device configured to output an audible effect.
 12. The method of claim 9, wherein the haptic effect comprises one or more of: a variation in coefficient of friction, a simulated texture, or a vibration.
 13. The method of claim 9, wherein the transitions comprise one or more of: a change in frequency, a change in amplitude, or a repetition of a frequency and amplitude.
 14. The method of claim 9, further comprising filtering the normalized signal.
 15. The method of claim 9, wherein the one or more local maximum values comprises the one or more transitions.
 16. A non-transitory computer readable medium comprising program code, which when executed by a processor, is configured to cause the processor to: receive a signal; identify one or more transitions in the signal by: determining a mean value of a Fast Fourier Transform of the signal at a series of time intervals; normalizing each of the mean values to create a normalized signal; determining a derivative of the normalized signal to create a derivative signal; and determining one or more local maximum values within the derivative signal; synchronize one or more haptic effects to the one or more transitions; and transmit a haptic signal associated with the synchronized haptic effects to a data store configured to store a haptic track.
 17. The non-transitory computer readable medium of claim 16, wherein the signal comprises one or more of: an audio signal, a pressure signal, or an acceleration signal.
 18. The non-transitory computer readable medium of claim 16, further comprising program code, which when executed by a processor is configured to cause the processor to transmit the haptic signal to a haptic output device configured to output the haptic effect and transmit the signal to an audio output device configured to output an audible effect.
 19. The non-transitory computer readable medium of claim 16, wherein the haptic effect comprises one or more of: a variation in coefficient of friction, a simulated texture, or a vibration.
 20. The non-transitory computer readable medium of claim 16, wherein the transitions comprise one or more of: a change in frequency, a change in amplitude, or a repetition of a frequency and amplitude. 